aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/[lang=lang]/+page.server.ts
blob: a647cfea63f05fd94b6c70c72db9517400c214ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { sanity } from '$lib/sanity-client';
import type { PageServerLoad } from './$types';
import groq from "groq";
import type { ContactModel } from './sections/contact.svelte';
import { fromLocalizedString } from '$lib/utils';
import type { HeroModel } from './sections/hero.svelte';
import type { DescriptionModel } from './sections/description.svelte';

export const load = (async ({ locals }) => {
    const contactSection = await sanity.fetch(groq`*[_type == "contact"][0]`);
    const heroSection = await sanity.fetch(groq`*[_type == "hero"][0]`);
    const descriptionSection = await sanity.fetch(groq`*[_type == "description"][0]`);
    return {
        contact: {
            phone: fromLocalizedString(contactSection.phone, locals.locale),
            email: fromLocalizedString(contactSection.email, locals.locale),
            phoneHours: fromLocalizedString(contactSection.phoneHours, locals.locale),
            addressLines: contactSection.addressLines.map((el: string | object) => fromLocalizedString(el, locals.locale)),
        } as ContactModel,
        hero: {
            title: heroSection.title,
            content: heroSection.content
        } as HeroModel,
        description: {
            title: descriptionSection.title,
            content: descriptionSection.content
        } as DescriptionModel
    };
}) satisfies PageServerLoad;